﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200027E RID: 638
	public class TAttributeOption : TParseTreeNode
	{
		// Token: 0x170003B7 RID: 951
		// (get) Token: 0x06001489 RID: 5257 RVA: 0x00325054 File Offset: 0x00323254
		// (set) Token: 0x0600148A RID: 5258 RVA: 0x0032505C File Offset: 0x0032325C
		public virtual TObjectName OptionName
		{
			get
			{
				return this._optionName;
			}
			set
			{
				this._optionName = value;
			}
		}

		// Token: 0x170003B8 RID: 952
		// (get) Token: 0x0600148B RID: 5259 RVA: 0x00325065 File Offset: 0x00323265
		// (set) Token: 0x0600148C RID: 5260 RVA: 0x0032506D File Offset: 0x0032326D
		public virtual TConstant OptionValueConstant
		{
			get
			{
				return this._optionValueConstant;
			}
			set
			{
				this._optionValueConstant = value;
			}
		}

		// Token: 0x170003B9 RID: 953
		// (get) Token: 0x0600148D RID: 5261 RVA: 0x00325076 File Offset: 0x00323276
		// (set) Token: 0x0600148E RID: 5262 RVA: 0x0032507E File Offset: 0x0032327E
		public virtual TTypeName OptionValueDataType
		{
			get
			{
				return this._optionValueDataType;
			}
			set
			{
				this._optionValueDataType = value;
			}
		}

		// Token: 0x170003BA RID: 954
		// (get) Token: 0x0600148F RID: 5263 RVA: 0x00325087 File Offset: 0x00323287
		// (set) Token: 0x06001490 RID: 5264 RVA: 0x0032508F File Offset: 0x0032328F
		public virtual TAttributeOption.EValueType ValueType
		{
			get
			{
				return this._valueType;
			}
			set
			{
				this._valueType = value;
			}
		}

		// Token: 0x06001491 RID: 5265 RVA: 0x00325098 File Offset: 0x00323298
		public override void init(object arg1, object arg2)
		{
			this._optionName = (TObjectName)arg1;
			if (arg2 is TTypeName)
			{
				this._valueType = TAttributeOption.EValueType.vtDataType;
				this._optionValueDataType = (TTypeName)arg2;
				return;
			}
			if (arg2 is TConstant)
			{
				this._valueType = TAttributeOption.EValueType.vtConstant;
				this._optionValueConstant = (TConstant)arg2;
			}
		}

		// Token: 0x040016E4 RID: 5860
		private TObjectName _optionName;

		// Token: 0x040016E5 RID: 5861
		private TTypeName _optionValueDataType;

		// Token: 0x040016E6 RID: 5862
		private TConstant _optionValueConstant;

		// Token: 0x040016E7 RID: 5863
		private TAttributeOption.EValueType _valueType;

		// Token: 0x02000451 RID: 1105
		public enum EValueType
		{
			// Token: 0x0400209A RID: 8346
			vtDataType,
			// Token: 0x0400209B RID: 8347
			vtConstant
		}
	}
}
